//#include <stdio.h>
//#include <stdlib.h>
//char argv[100] = "agbkfongksvbjipzfk";
//int main(int argc, char* argv[])
//{
//	char sum[27] = "0abcdefghijklmnopqrstuvwxyz";
//	char sum1[27] = {0};
//	int i = 0;
//	int left = 0;
//	int right = 0;
//	int result = 0;
//	//
//	for (i = 0; i < argc; i++)
//	{
//		char v[9] = "0lanqiobe";
//		int j = 0;
//		for (j = 0; j < 9;)
//		{
//			if (argv[right] == v[j])
//			{
//				result = 10 * j;
//				right++;
//			}
//			else if (argv[right] != v[j])
//			{
//				j++;
//				right++;
//				left++;
//			}
//			else if (argv == '\0')
//				break;
//		}
//		
//
//	}
//	for (i = 0; i < argc; i++)
//	{
//		char a = 0;
//		a = argv[i];
//		for (int j = 0; j < 27; j++)
//		{
//			if (a == sum[j])
//			{
//				sum[j] = 0;
//				result += j;
//			}
//			else
//				return result;
//		}
//	}
//}


#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <stdlib.h>


int yinshu(int x)
{
	long long y = x * x * x;
	int i = 0;
	int num1 = 0;
	for (i = 2; i < y; i++)
	{
		if (y % i == 0)
			num1++;
	}
	return num1;
}
int main()
{
	int count = 0;
	int num = 0;
	scanf("%d", &num);
	struct stati {
		int a[];
	};
	struct stati S; 
	int k = 0;
	for (k = 0; k < num; k++)
	{
		scanf("%d", S.a[k]);
	}
		int j = 0;
	for (j = 0; j < num; j++)
	{
		int z = 0;
		z = S.a[j];
		int result = yinshu(z);
		if (result % 2 == 0)
		{
			;
		}
		else
		{
			count++;
		}
	}
	return count;
}